//package com.aidem.onecartoon.modules.article.service;
//
//import com.aidem.onecartoon.modules.article.mapper.ArticleMapper;
//import com.aosun.blog.modules.article.entity.Article;
//import com.aosun.blog.modules.article.mapper.ArticleMapper;
//import com.github.pagehelper.PageHelper;
//import com.github.pagehelper.PageInfo;
//import org.jsoup.Jsoup;
//import org.jsoup.nodes.Document;
//import org.jsoup.nodes.Element;
//import org.jsoup.select.Elements;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//import org.springframework.web.bind.annotation.RequestBody;
//
//import java.math.BigDecimal;
//import java.text.SimpleDateFormat;
//import java.util.*;
//
///**
// * 文章service
// */
//@Service
//public class ArticleService {
//
//	@Autowired
//	private ArticleMapper articleMapper;
//	@Autowired
//	private StringRedisTemplate stringRedisTemplate;
//
//	/**
//	 * 添加文章（暂存、保存）
//	 */
//	public String addArticle(Article article) {
//		article.setViews(BigDecimal.ZERO);
//		Date now = new Date();
//		article.setPublishTime(now);
//		article.setModifyrq(now);
//		initMneuInfo(article);
//		articleMapper.insert(article);
//		return "success";
//	}
//
//	/**
//	 * 修改文章
//	 */
//	public String updateArticle(Article article) {
//		Date now = new Date();
//		article.setModifyrq(now);
//		initMneuInfo(article);
//		articleMapper.updateById(article);
//		return "success";
//	}
//
//	/**
//	 * 删除文章
//	 * @param id    文章id
//	 */
//	public String deleteArticleById(@RequestBody String id) {
//		articleMapper.deleteById(id);
//		return "success";
//	}
//
//	/**
//     * 根据条件查询文章列表
//     */
//	public Map<String, Object> getArticleList(Map<String, Object> param) {
//		Map<String, Object> resultMap = new HashMap<>();
//		PageHelper.startPage(Integer.parseInt(param.get("page").toString()), Integer.parseInt(param.get("rows").toString()));
//		List<Article> articleList = articleMapper.getArticleList(param);
//		for (Article article : articleList) {
//			Object redisView = stringRedisTemplate.opsForValue().get(article.getId() + "_view");
//			if (redisView != null) {
//				article.setViews(new BigDecimal(String.valueOf(redisView)));
//			} else {
//				stringRedisTemplate.opsForValue().set(article.getId(), article.getViews().toPlainString());
//			}
//		}
//		PageInfo<Article> pageInfo = PageInfo.of(articleList);
//		resultMap.put("total", pageInfo.getTotal());
//		resultMap.put("info", pageInfo.getList());
//		return resultMap;
//	}
//
//	/**
//     * 根据条件查询文章归档列表
//     */
//    public List<Article> getArchiveList(Map<String,Object> param){
//		List<Article> yearList = new ArrayList<>();
//		Article article = new Article();
//		List<Article> list = articleMapper.getArticleArchiveList(param);
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
//		if (!CollectionUtils.isEmpty(list)){
//			// 放入年份列表 用like来记录index
//			article.setId(sdf.format(list.get(0).getPublishTime()));
//			article.setViews(BigDecimal.ZERO);
//			yearList.add(article);
//			for (int i = 0; i < list.size(); i++) {
//				Article a = list.get(i);
//				ListIterator<Article> yearIt = yearList.listIterator();
//				while (yearIt.hasNext()){
//					Article year = yearIt.next();
//					// 新年份 记录年份 + index
//					if (!year.getId().equals(sdf.format(a.getPublishTime()))) {
//						article = new Article();
//						article.setId(sdf.format(a.getPublishTime()));
//						article.setViews(new BigDecimal(String.valueOf(i)));
//						yearIt.add(article);
//					}
//				}
//			}
//			// 插入到要返回的list里面
//			for (int i = 0; i < yearList.size(); i++) {
//				Article year = yearList.get(i);
//				list.add(i + Integer.parseInt(year.getViews().toPlainString()), year);
//			}
//		}
//		return list;
//    }
//
//	/**
//	 * 根据id查询文章
//	 * @param id    文章id
//	 */
//	public Article getArticleById(String id) {
//		return articleMapper.getArticleById(id);
//	}
//
//	/**
//	 * 给h2标签增加id，并将id|tag内容@...加入字段值里
//	 */
//	private void initMneuInfo(Article article) {
//		String articleInfo = article.getInfo();
//		StringBuilder menuInfo = new StringBuilder();
//		Document document = Jsoup.parse(articleInfo);
//		Elements h2List = document.getElementsByTag("h2");
//		for (int i = 0; i < h2List.size(); i++) {
//			if (i != 0) {
//				menuInfo.append("@");
//			}
//			// 处理id
//			String mainSubId = "mainSub" + i;
//			Element h2 = h2List.get(i);
//			h2.attr("id", mainSubId);
//			menuInfo.append(mainSubId).append("|").append(h2.text());
//		}
//		;
//		article.setInfo(document.outerHtml());
//		article.setMenuInfo(menuInfo.toString());
//	}
//}
